import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  /*  vuex  要存储的数据*/
  state: {
    uname: '',
    uid: ''
  },
  /*相当于get方法，用于获取state中的数据*/
  getters: {
    getUname: state => {
      return state.uname
    },
    getUid: state => {
      return state.uid
    }
  },
  /*声明方法，用于将用户的数据存储到store仓库中，类似于set方法*/
  /*不支持异步操作*/
  mutations: {
    setUname: function (state, uname) {
      state.uname = uname
    },
    setUid: function (state, uid) {
      state.uid = uid
    }
  },
  /*声明方法，主要用于调用mutations中的方法，完成数据存储动作*/
  /*支持异步操作*/
  actions: {
    setUname: function (context, uname) {
      //调用mutations函数，第一个参数为函数名称，第二个参数是用户数据
      context.commit('setUname', uname)
    },
    setUid: function (context, uid) {
      context.commit('setUid', uid)
    }
  },
  /*模块，项目较大时，可以按照功能划分模块*/
  /*每个模块有自己的state、getters属性等*/
  modules: {
    /*注册小模块*/
    //adminModule:moduleA,
    //userModule:moduleB
  }
})

/*声明小模块*/
/*const moduleA = {
  state:{},
  getters:{},
  mutations:{},
  actions:{}
}
const moduleB = {
  state:{},
  getters:{},
  mutations:{},
  actions:{}
}*/
